﻿using System;
using System.Collections.ObjectModel;

using VSTalk.Model;

using agsXMPP;

namespace VSTalk.Engine.Core.Context
{
    public interface IModelContext
    {
        Account Account { get; }
        ObservableCollection<Client> Clients { get; }
        ObservableCollection<Interlocutor> Interlocutors { get; }
        ObservableCollection<Room> Rooms { get; }

        Client GetClientById(Guid id);
        Client GetClientByJid(Jid jid);
        Interlocutor GetContactById(Guid id);
        Interlocutor GetContactByJid(Guid clientId, Jid jid);
        Room GetRoomById(Guid id);
        Room GetRoomByJid(Guid clientId, Jid jid);

        Client GetClientByContact(Interlocutor interlocutor);
        Client GetClientByRoom(Room room);
    }
}